Consider the example of a Magnetic Random Access Memory (MRAM) device. The device includes a resistive cross point array of magnetic tunnel junctions. Each magnetic tunnel junction is located at a cross point of a word line and a bit line, and has a magnetization that assumes one of two stable orientations at any given time. These two stable orientations, parallel and anti-parallel, represent logic values of ‘0’ and ‘1.
A write operation on a “selected” magnetic tunnel junction may be performed by supplying write currents to the word and bit lines crossing the selected magnetic tunnel junction. The write currents create two orthogonal external magnetic fields. The magnetic tunnel junctions are designed to switch (from parallel to anti-parallel or vice versa) only in the presence of the two orthogonal magnetic fields.
A “half-selected” magnetic tunnel junction lies along only one line that is supplied with a write current (either a bit line or a word line). Thus, a half-selected magnetic tunnel junction is exposed to only one external magnetic field during a write operation. The magnetic tunnel junctions are designed not to switch in the presence of a single magnetic field.
In practice, however, switching distributions of the magnetic tunnel junctions in an MRAM array are large, and the switching fields of nominally similar magnetic tunnel junctions are non-uniform. Some half-selected magnetic tunnel junctions switch in the presence of only a single external magnetic field, and some selected magnetic tunnel junctions do not switch in the presence of two orthogonal magnetic fields.
A write error occurs if the magnetization orientation of a selected magnetic tunnel junction is not switched, or if the magnetization orientation of a half-selected magnetic tunnel junction is inadvertently switched. In a large MRAM array, many write errors can place a substantial burden on error code correction.